{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "b4ffc13d-d0ad-4463-929b-413eb87ca3db",
   "metadata": {},
   "source": [
    "Chapter 20\n",
    "# 鸡兔互变有向图\n",
    "Book_6《数据有道》 | 鸢尾花书：从加减乘除到机器学习"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "9383ef10-bdc0-4ac6-a539-a5f9dfa9fd46",
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import networkx as nx\n",
    "import numpy as np\n",
    "import seaborn as sns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "46435399-089e-46eb-8b8f-dedef4cb1500",
   "metadata": {},
   "outputs": [],
   "source": [
    "G = nx.DiGraph()\n",
    "# 创建有向图的实例"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "fdde8ad7-42dc-4c70-b5ce-44336d48ee64",
   "metadata": {},
   "outputs": [],
   "source": [
    "G.add_nodes_from(['Chicken', 'Rabbit'])\n",
    "# 添加多个顶点"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "22da8492-2dd3-4699-a255-fd221939aa44",
   "metadata": {},
   "outputs": [],
   "source": [
    "edges_with_weights = [('Chicken','Chicken', 0.7),\n",
    "                      ('Chicken','Rabbit', 0.3),\n",
    "                      ('Rabbit','Rabbit', 0.8),\n",
    "                      ('Rabbit','Chicken', 0.2)]\n",
    "\n",
    "for u, v, w in edges_with_weights:\n",
    "    G.add_edge(u, v, weight=w)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "c2665fcd-f847-4e16-ac20-095358e9ff3a",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 位置\n",
    "\n",
    "pos = {'Chicken':(-0.2,0),\n",
    "       'Rabbit': (0.2,0)}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "262b1dd4-22d2-45ca-adbe-95ae0bf54b9a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(-0.5, 0.5)"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeQAAAHiCAYAAAA597/kAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAb5ElEQVR4nO3de5yWdYH38e89w3BonJmFgBTFUFhNI8uwtU19iYJtPanrgUItfeUTHgKt1nTbrFW0g49Wbh42sTUyl6LUfJK0QstN10M866F6eXZhQJFADBkOjQww9/MHy+Q4gCPC8Ave79fLP2bu675+1z2vn/eH67ru67or1Wq1GgBgm6rZ1hsAAAgyABRBkAGgAIIMAAUQZAAogCADQAEEGQAKIMgAUIBe3Vmovb09CxYsSENDQyqVytbeJgDYblSr1SxfvjxDhgxJTc3G94O7FeQFCxZk6NChW2zjAGBH89xzz2W33Xbb6OPdCnJDQ0PHyhobG7fMlgHADmDZsmUZOnRoR0s3pltBXn+YurGxUZABYDO81ilfH+oCgAIIMgAUQJABoACCDAAFEGQAKIAgA0ABBBkACiDIAFAAQQaAAggyABRAkAGgAIIMAAUQZAAogCADQAEEGQAKIMgAUABBBoACCDIAFECQAaAAggwABRBkACiAIANAAQQZAAogyABQAEEGgAIIMgAUQJABoACCDAAFEGQAKIAgA0ABBBkACiDIAFAAQQaAAggyABRAkAGgAIIMAAUQZAAogCADQAEEGQAKIMgAUABBBoACCDIAFECQAaAAggwABRBkACiAIANAAQQZAAogyABQAEEGgAIIMgAUQJABoACCDAAFEGQAKIAgA0ABBBkACiDIAFAAQQaAAggyABRAkAGgAIIMAAUQZAAogCADQAEEGQAKIMgAUABBBoACCDIAFECQAaAAggwABRBkACiAIANAAQQZAAogyABQAEEGgAIIMgAUQJABoACCDAAFEGQAKIAgA0ABBBkACiDIAFAAQQaAAggyABRAkAGgAIIMAAUQZAAogCADQAEEGQAKIMgAUABBBoACCDIAFECQAaAAggwABRBkACiAIANAAQQZAAogyABQAEEGgAIIMgAUQJABoACCDAAFEGQAKIAgA0ABBBkACiDIAFAAQQaAAggyABRAkAGgAIIMAAUQZAAogCADQAEEGQAKIMgAUABBBoACCDIAFECQAaAAggwABRBkACiAIANAAQQZAAogyABQAEEGgAIIMgAUQJABoACCDAAFEGQAKIAgA0ABBBkACiDIAFAAQQaAAggyABRAkAGgAIIMAAUQZAAogCADQAEEGQAKIMgAUABBBoACCDIAFECQAaAAggwABRBkACiAIANAAQQZAAogyABQAEEGgAIIMgAUQJABoACCDAAFEGQAKIAgA0ABBBkACiDIAFAAQQaAAggyABRAkAGgAIIMAAUQZAAogCADQAEEGQAKIMgAUABBBoACCDIAFECQAaAAggwABRBkACiAIANAAQQZAAogyABQAEEGgAIIMgAUQJABoACCDAAFEGQAKIAgA0ABBBkACiDIAFAAQQaAAggyABRAkAGgAIIMAAUQZAAogCADQAEEGQAKIMi8bg8//HB22mmnTJw4Mc8999y23hzYKsxzepog87rNnz8/K1euzLXXXps999wzEydOzPz587f1ZsEWZZ7T0wSZzdbe3p41a9bk29/+doYNG5Zjjjkmzc3Neeihh3Lvvffm8ccfT3t7+7beTHhDzHN6Sq9tvQH85Vu7dm2S5NZbb83ChQvz8MMPZ/Xq1UmSN7/5zTn88MMzZsyYHH/88Rk4cOC23FTYbOY5W5s9ZF6Xtra23HzzzV1+P2DAgFxwwQW56667smDBgjzxxBO56667MmnSpMyfPz+TJk3KiBEj8s1vfrPjTQxKZZ6zTVS7oaWlpZqk2tLS0p3F2U49+uij1ZEjR1ZramqqSapJqoMHD65eddVV1dbW1k0+d9GiRdUzzjijWqlUqm9729uqs2bN6qGthtfHPGdL625D7SHTLU8//XTGjBmTarWaW265JaNGjcpVV12VefPm5ayzzkrfvn03+fzBgwdnypQpefjhh9PQ0JAxY8bknnvu6aGth+4xz9mWKtVqtfpaCy1btixNTU1paWlJY2NjT2wXBZk7d24OOeSQNDQ05O67786gQYPe0PpWrlyZo48+Og888EBmzJiRsWPHbqEthc1nnrO1dLeh9pDZpLVr12bcuHGpq6vLnXfe+YbfpJKkvr4+t912Ww499NAcc8wxmTNnzhbYUth85jklEGQ26ZprrsnDDz+c6dOnZ9ddd91i6+3Xr19uvPHGDBo0KKeeeqrLRtimzHNKIMhs1IIFC3L++efn9NNPz4EHHrjF19/Q0JCpU6fmnnvuyb/+679u8fVDd5jnlEKQ2ahLL700vXv3ziWXXLLVxjjssMMyceLEnH/++Wlpadlq48DGmOeUQpDZoNbW1txwww057bTT0r9//6061he+8IWsWrUqU6dO3arjwKuZ55REkNmgm2++OUuXLs2ECRO2+lhDhgzJ+PHjc+WVV3bcDQl6gnlOSQSZDZo6dWrGjBmT4cOH98h4n/nMZzJ37tzcfvvtPTIeJOY5ZRFkumhtbc19992XY489tsfGHDVqVPbee+/87Gc/67Ex2bGZ55RGkOli1qxZWb16dQ4++OAeHXfs2LG58847e3RMdlzmOaURZLr4z//8zzQ1NWXkyJE9Ou4RRxyROXPmuIECPcI8pzSCTBcPPfRQDjzwwNTW1vbouKNHj06S3HvvvT06Ljsm85zSCDJdzJ8/P8OGDevxcZuamrLzzjvbc6BHmOeURpDp4vnnn8+QIUO2ydjDhg3L3Llzt8nY7FjMc0ojyHSyevXqLFq0aIvez/f12GOPPdLc3LxNxmbHYZ5TIkGmk2XLlqVarWbAgAHbZPxddtklCxcu3CZjs+MwzymRINNJr169kmSb3UmopsaUZOszzymRWUEn69+oVq9evY23BLYe85wSCTKd1NXVJfFGxfbNPKdEgkwndXV16devX5YsWbJNxl++fHnq6+u3ydjsOMxzSiTIdFKpVDJ8+PDMnj17m4zf3Ny8Ta4NZcdinlMiQaaLESNG5JlnntkmY8+dOzd77LHHNhmbHYt5TmkEmS7++q//epu8UbW3t2fevHn2HOgR5jmlEWS62H///dPc3JwFCxb06Li//e1vs2rVquy33349Oi47JvOc0ggyXRxxxBGpVCq54447enTcO++8M/X19fnbv/3bHh2XHZN5TmkEmS4GDhyYAw44IDNnzuzRce+8884ceuih6d27d4+Oy47JPKc0gswGfeADH8jMmTPT2traI+MtXbo09957b8aOHdsj40FinlMWQWaDTjnllCxdujTTpk3rkfGuu+66VKvVnHjiiT0yHiTmOWWpVKvV6msttGzZsjQ1NaWlpSWNjY09sV0U4LjjjssTTzyRxx57rFv33m1tW5tfPbkof2h5OStWrclOfXpll6a+GfO2t6Rf741/CfyaNWsyfPjwHHbYYbn++uu34CuA12aes7V1t6G9enCbKFilUsmkSZNy9dVXd/zunHPOySGHHJLbbrstRx99dJLk+uuvz6mnntrpxgZzFq/I92c9mx/+17NZ2bY2NZWkplJJe7Wa9mqyU59eWfnjf07dmhV5+onHu4x900035dlnn82nP/3pHnmt8Eobmuevtv664fefem7mDx2z0Xk+/oCh+e20r2TmbbdmxYoVndaxoXleqVRy4YUXZvLkyVvzJfIXwiHrHcDs2bNzxhlnZM8990zfvn3T2NiYgw46KFdcccUmz50ddNBBGTNmTM4+++wsW7asy+Pt7dVcNvPJHH753bn+gblZ2bbum3Paq8ma9nVvUkmyYtWaLFz2cua+uDKXzXwy7e1/PiizZMmSfPazn82RRx6Z/ffff8u+cHZY119/fSqVSsd/vXr1yq677pqPf/zjef755zst2515PuXudXf0enDekk3O8+vvn5uZjy3K6rXVzZrn999/fyZPnpylS5e+wb8Af4kEeTt3++235x3veEduvPHGHHXUUbnqqqtyySWXZPfdd8955523yb3SSqWS6667LkuWLMk555yTJDn55JPT2tqaoUN3z7k3/y7f+vW6N6q17Zs+87H+zMi3fj075978u443q09/+tP505/+lClTpmyJlwudXHzxxfn3f//3TJkyJR/84Aczbdq0HHrooXn55Zc7ltnQPF+vvb2ac2/+Xab9Zt66n1/jBN/a/5nnq9e2d2uet7a25otf/GLHz/fff38uuugiQd5BOWS9HWtubs4JJ5yQt771rbnrrruyyy67dDw2adKk/Pd//3duv/32Ta5j2LBhufzyy3P66afn/e9/fz7ykY+ktrY2l818Mrc88vwmn7sxtzzyfHZu6pshix/MtGnT8r3vfS+77rrrZq0LNuWDH/xgDjjggCTJhAkTMnDgwFx66aWZMWNGPvKRj3Qst6F5niRfv/OprTrP+/btu5mvjO2RPeTt2GWXXZYVK1bkO9/5TqcYrzdixIgue8g/+clPMnLkyPTp0ydvf/vb84tf/CITJkzISSedlJNOOilnnnlmKpVKrvzJ/Z2e1zr7wSz8/j/l2cs/nGcv/3D+cP0/ZOVjv97otn3r17Nz6sTPpLa2Nj//+c+zZs2aJMmTTz6ZcePGZcCAAenbt28OOOCAzJgxo9Nz1x+OvO+++3LOOedk0KBBqa+vz7HHHpvFixdv5l+LHcEhhxySJB1fKtHW1pYLLrggo0aNyrnnnpva2tqMHz8+X/ziFzNn8YqOI0CvtOz//STzv3Vqnv36cVn4/X9K2+K5Gxxr9dKFufCTJ+Xkk09Jv3790tzcnFd/hrZSqXScP548eXLOO++8JMkee+zRcbh97twNr5/tjz3k7dhPf/rT7Lnnnnnf+97XreXvvffe3HLLLZk4cWIaGhpy5ZVX5vjjj8+zzz6bG264IXV1dbn22muTrPswy3orfv/L/PFnV6Ru0O5peu+HU9O3Pm2LZqd1zkOpf/voDY71p6d/k7V/asnHTjop3/3ud1NbW5vHHnssBx10UBobG/OJT3wiw4YNy4033phjjjkmP/7xj3Psscd2WsfZZ5+d/v3758ILL8zcuXPzzW9+M2eddVZ+9KMfbd4fjO3e+ri1tbVlxowZOfDAA3PdddflxBNPzGmnnZaWlpZ89atfzVe+8pXMatkptQ37dRyGTpKVj96V9rbWNLz7Q6muWZ3lD87IoulfyJBPXJ3a+v5/Hqjanhd+dEF6D9krww89Lm/b6eVMnjw5a9euzcUXX7zBbTvuuOPy9NNPZ/r06fmXf/mXDBw4MEkyaNCgrfb3oCyCvJ1atmxZnn/++fz93/99t5/zxBNP5PHHH8/w4cOTJIcddlje+c53Zvr06TnrrLMyderUzH32udz9H3elvVpNTZL2l1dmyS+vTe8he2Xnky5Jpdef7z60sSvq/vTU/Vl862Xp/66xuebb30ltbW3Wrl2bE044Ia2trWlpacnSpUszadKkTJw4MQcffHA+97nPdQnym9/85txxxx2p/M8/Dtrb23PllVempaUlTU1Nr/MvxvaopaUlL774Yl5++eXMmjUrF110Ufr06ZOnnnoqkydPzogRI3LZZZflxBNPTG3tukuWTjvttOy222554D/uyMCj3tFpfWte+kOGnHFtejWsi2W/Pd+dhTd8Ni2/uTkDxpzWsVx1TVv67TkqA444I3371ObGz4/NR44/Jpdeemk+9alPdcT2lfbbb7+8+93vzvTp03PMMcf48okdkEPW26n1nxZtaGjo9nPGjh3bEeNk3RtEY2Nj5syZkySpqanJuw47stNzWuc+kmpba5reO65TjJN0hPKVVj5+dxbfemka3vWBNBwxKb96clF++MMfZq+99sqjjz6a1atXp1KpZOXKlXnxxRfzxz/+MX/3d3+XZ555psunY08//fROYxxyyCFZu3Zt5s2b1+3XzPZt7NixGTRoUIYOHZpx48alvr4+M2bMSN++fVNTU5M5c+bk5JNPzj777JMf/OAHWbx4cdrb2/P2A96XtsVd51G/vd7bEeMk6TNk7/QesndaZz/UZdmGUev+X1mxam3ueuqFnHXWWWlra8svf/nLrfeC+YtmD3k7tf7i8+XLl3f7ObvvvnuX3/Xv3z8vvfRSx88tras7Pb5m6cIkSd2gt77m+te0LMqLP/1G3vS2gzLg/Wcm1faccuan0jLr/3Yss36vevr06Zk+fXqn5++3336pq6vruFTrzDPPzNlnn93xeFtbW5Jk9OjR7hO8g1s/RxoaGlJbW5tqtZrW1tbMmzev40hMe3t7x/LPPPNMPvrRj3ZaR6+/ekuX9db1H7LB36188t7Ov6zUpNdf7ZwkqakkC1tezuF77ZUkzgmzUYK8nWpsbMyQIUPy6KOPdvs56w/ZvdorDz2/vLp9g8t0a/31A1K7U/+0zn4wq/7wTPq8Zc/U9H7TBpetq6tLfX19t7YPNqauri51dXVJkj59+uSll15KS0tLx+9eraamJiNHjszC5WuyZMmLW2QbaiqVLF+1Jt5ueS1myHbsyCOPzLe//e088MADW+yr3vrWdT7LsX4vYPXieRvce3ilSq+6DB53YRZNPz8v3HhhdvnoJfk/X56cpj8clc9//vNpbm5Osu5N8WMf+1imTp26wfWsv1vYzJkzOy5pSZJf//rXOeyww3LLLbdk9OjRb+BV8pfutebIyJEj88gjj3TsJY8YMSJf/vKXM27cuNTW1mbEO0ZlyZKu6139UtfvTl790oL0anrV3nS1PWuWLkzdgF3TXq2moU+vPP3000myyXPDGzrNw47DOeTt2D/+4z+mvr4+EyZMyKJFi7o8Pnv27FxxxRWva51N/TrvWfTb492p9O6XlgduSnVNW6fHNvShrpq+9Rk8/uLUvqkpC3/4z6ksfyHjx4/PM888k3333Tc1NTVpb2/vsjfscia2hNGjR+dv/uZv8vjjj6e9vT319fUZPHhwHn/88YwfPz61tbWZNWtW5jz2SDb0mcTWp3+TNcv/vOe8asFTaVvwVPrtOarLsssfui3JupuJvKWxT66++urU1dVlzJgxG92+9UeF3Bhkx2QPeTs2fPjw/OAHP8j48eOzzz775JRTTsnIkSPT1taW+++/PzfddFM+/vGPv6517rtL508v1/R5U/qPOS1Lfn5l/vC9f0j9voempu9OaXuhOdXVqzLwyHO6rKP2TU0ZfMKX8sL3P5evTPpo/te77s2uu+6am266KQcffHDWrFmTmpqa/Nu//VsWLVqUBx54IPPnz8/vfve7N/LngCTJeeedlw9/+MP55Cc/mVGjRmXChAkZN25cPvShD6W5uTlTpkzJPvvsm2ee7/qPwF79d8nCaZ9Lw/4fTHXt6iz/rxmp6deYxvce32m5Sq/eaZ3zUF687fI07r5Prvn9Nfn5z27P+eefv8nLmEaNWhf2L3zhCznhhBNSV1eXo446qsvpG7ZPgrydO/roo/P73/8+X/va13LrrbfmmmuuSZ8+fbLffvvlG9/4Rk477bTXXskr9O617qDKK69Dbnjn+1P7pqYs+83NabnvR0ltbeoG7JbG92z8kqs+jYNy1teuzw8v+N854ogjcs8992TffffNgw8+mIsuuigzZszId7/73QwePDj7779/Lrjggs37A8CrHHfccRk+fHjuuOOOXHXVVXnhhRdy7bXXZubMmdl3330zbdq03HTTTVnw4p2prVQ6XYdcP/LwVCqVLHtwRtauXJo+u+yVAe8/M712GtB5kEpNBo+/OC/N/FZe/NXUPPxXjbnwwgtfcx6/5z3vyZe+9KVMmTIlv/jFL9Le3p7m5mZB3kH4+kVetzmLV+Twy+9+w+v5j8+Ozh4DvdFQJvOcLaW7DXUOmddtz0E7ZeLo4a+94CZMHD3cmxRFM8/paYLMZjn3iL1z3P6b94UQx+2/a849Yu8tvEWw5Znn9CRBZrPU1FTy9XHv7NiDqH2NyzXWPz5p9PB8fdw7U1Pj8g7KZ57Tk5xD5g1rfnFlvj9rXn74X89lxao1qams+9BXe3Xdl7fv1KdXTnjP0Hz0wLc6fMdfLPOczdXdhgoyW0xr29r86slFWdjycpavWpOGPr2yc1PfjHnbW9Kvt7tssX0wz3m9uttQlz2xxfTrXZsj99v03brgL515ztbiHDIAFECQAaAAggwABRBkACiAIANAAQQZAAogyABQAEEGgAIIMgAUQJABoACCDAAFEGQAKIAgA0ABBBkACiDIAFAAQQaAAggyABRAkAGgAIIMAAUQZAAogCADQAEEGQAKIMgAUABBBoACCDIAFECQAaAAggwABRBkACiAIANAAQQZAAogyABQAEEGgAIIMgAUQJABoACCDAAFEGQAKIAgA0ABBBkACiDIAFAAQQaAAggyABRAkAGgAIIMAAUQZAAogCADQAEEGQAKIMgAUABBBoACCDIAFECQAaAAggwABRBkACiAIANAAQQZAAogyABQAEEGgAIIMgAUQJABoACCDAAFEGQAKIAgA0ABBBkACiDIAFAAQQaAAggyABRAkAGgAIIMAAUQZAAogCADQAEEGQAKIMgAUABBBoACCDIAFECQAaAAggwABRBkACiAIANAAQQZAAogyABQAEEGgAIIMgAUQJABoACCDAAFEGQAKIAgA0ABBBkACiDIAFAAQQaAAggyABRAkAGgAIIMAAUQZAAogCADQAEEGQAKIMgAUABBBoACCDIAFECQAaAAggwABRBkACiAIANAAQQZAAogyABQAEEGgAIIMgAUQJABoACCDAAFEGQAKIAgA0ABBBkACiDIAFAAQQaAAggyABRAkAGgAIIMAAUQZAAogCADQAEEGQAKIMgAUABBBoACCDIAFECQAaAAggwABRBkACiAIANAAQQZAAogyABQAEEGgAIIMgAUQJABoACCDAAFEGQAKIAgA0ABBBkACiDIAFAAQQaAAggyABRAkAGgAIIMAAUQZAAogCADQAEEGQAKIMgAUABBBoACCDIAFECQAaAAggwABRBkACiAIANAAQQZAAogyABQAEEGgAIIMgAUQJABoACCDAAFEGQAKIAgA0ABBBkACiDIAFAAQQaAAggyABRAkAGgAIIMAAUQZAAogCADQAEEGQAKIMgAUABBBoACCDIAFECQAaAAggwABRBkACiAIANAAQQZAAogyABQAEEGgAIIMgAUQJABoACCDAAFEGQAKIAgA0ABBBkACiDIAFAAQQaAAggyABRAkAGgAIIMAAUQZAAogCADQAEEGQAKIMgAUABBBoACCDIAFECQAaAAggwABRBkACiAIANAAQQZAAogyABQAEEGgAIIMgAUQJABoACCDAAFEGQAKIAgA0ABBBkACiDIAFAAQQaAAggyABRAkAGgAIIMAAUQZAAogCADQAEEGQAKIMgAUABBBoACCDIAFECQAaAAvbqzULVaTZIsW7Zsq24MAGxv1rdzfUs3pltBXr58eZJk6NChb3CzAGDHtHz58jQ1NW308Ur1tZKdpL29PQsWLEhDQ0MqlcoW3UAA2J5Vq9UsX748Q4YMSU3Nxs8UdyvIAMDW5UNdAFAAQQaAAggyABRAkAGgAIIMAAUQZAAogCADQAH+PyzF0Om1iQtNAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 600x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "# 可视化\n",
    "plt.figure(figsize = (6,6))\n",
    "nx.draw_networkx(G, \n",
    "                 pos = pos,\n",
    "                 node_size = 180)\n",
    "plt.ylim(-0.5,0.5)\n",
    "plt.xlim(-0.5,0.5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "e5141d22-53b7-470e-904b-34f151bc3b76",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0.7, 0.3],\n",
       "       [0.2, 0.8]])"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 邻接矩阵\n",
    "A = nx.adjacency_matrix(G).todense()\n",
    "A"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "2bc9dad7-3863-487a-9e21-a4a70d8c455b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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kdjvWoVr0aaDpe5TPdBfxb8KwvaLp+ckEZ/hizwK0IWFherSpUuJ9s6dO6uoqKjCk0LF3H3vIKW8/Jyatmyt5te20brVb8mWf149YvtIkua8NFl1w8L1wPALd4J7d9lirfj73/R44gsKr99AOadOSpKCqgcrqHpwlX0OoCx/23hAs/50g3YfPq1d/7vMKjgwQMu2HpYkzf7TDTp2+rymrt4rSdq4+5geub2FPj9yoX9UvZoa36+NNu45ViJww3cZ5QYj3uJRgB48eLDmzZunGTNmuLS/9tprGjRokFcmBs/d1OMO5eac1oo35yvn9I+KatZSz0yd7SxxnzyeJYvl5+UHG//1jooKCzXj+fEu4/xh8AjdN+SRKzp3oDzWbP9BV9Wy6ul+rVUvJEhffH9GA2d97LwGOrJusIp/Ubd+Ze0+OeTQhLi2ql+7un48a9PGPf9V8uovquojwAMmW8Rd/uugf3nOuKioSIsXL9Y111yjG2+8UZL06aef6siRIxoyZIhmz57t/kS4Dhq/YVwHjd+yK3UddMa33ruVdNemvr/uqdwZ9K5du1xed+7cWZJ08OCFcz5hYWEKCwvTF1/wjRQA4H0mS6DLH6A3b95cmfMAAODSTBahPb4OGgAAVB6P7yS2fft2rVixQkeOHFFBQYHLe6tWrarwxAAA+CWzreL2KINetmyZbrrpJu3bt0+rV69WYWGhvvjiC23atIkbjgAAKoXF4r3NCDwK0FOnTtUrr7yi999/X4GBgZo1a5b279+v++67T9dcc4235wgAgOlu9elRgD548KB69+4tSQoMDFReXp4sFovGjh2r1157zasTBADAjDwK0HXq1NHZs2clSZGRkdq798LdenJycvTTTz95b3YAAFxkshTao0Vi//d//6eNGzeqXbt26t+/v+Lj47Vp0yZt3LhRt956q7fnCAAAi8TKY86cObr//vslSc8++6wSEhKUnZ2te++9V3PnzvXqBAEAqGopKSmKiopSUFCQunXrpoyMjDL7vv7667r55ptVp04d1alTRzExMZfsXxaPAnTdunXVsGHDCwP4+WnChAlasWKFGjZsqOuvv96TIQEAuKSqWsW9fPlyJSQkKCkpSTt37lSHDh0UGxur48ePl9o/LS1NAwcO1ObNm5Wenq5GjRrpjjvu0NGjR906rlsB2mazKTExUV26dNFNN92k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\n",
      "text/plain": [
       "<Figure size 640x480 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.heatmap(A, cmap = 'Blues', \n",
    "            annot = True, fmt = '.1f',\n",
    "            xticklabels = list(G.nodes), \n",
    "            yticklabels = list(G.nodes),\n",
    "            vmin = 0, vmax = 1,\n",
    "            linecolor = 'k', square = True,\n",
    "            linewidths = 0.2)\n",
    "plt.savefig('有向图邻接矩阵.svg')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "1749e3d9-d792-4bbb-a7a2-b441fb3ca34c",
   "metadata": {},
   "outputs": [],
   "source": [
    "T = A.T"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "080234a3-1836-4001-a0db-2766b2bf3f9b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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nCTyM4zIqwRdUFCgLl26lBjv3LmzCgsLKxwUKqZn3/u0dPaLuqrFtbqqZWv9672VynecV/dbLqzqfmPW/ynoigbq+6dHJUmb3v6nmjS/ViENG6uwsEBf7ErVp//aqHsffrIqvwZQpr9vOqRZf+6qvUfPaM9/b7MKDKim5duPSpJm/7mrjp85rylr9kuSNu09rkdua6nPMi7Mj2hQW+P7X6dN+46XSNwwLrM8YMRXvErQQ4YM0bx58zR9+nS38VdffVWDBw/2SWDwXqff3apzOdlav2yBcrJP68qrW+jRSdNU978Lx86cypLN75flB/mO81r12jSd/eGEqgfYFRreVENiJ6vT726tqq8AXNTand/rijp2Pd2/jRrUraHPvzurQbO2ue6BDq8fqOJf9a1nrDsgp5yaENNWDYNr6ocfHdq07z9KXHPpOxtgHBZbxC2b01m+qy+/vmZcWFioxYsX66qrrtINN9wgSfrkk0+UkZGhoUOHavbs2Z4HYrPpg/0nPN4PMIM72oZKksIeWlXFkQC+l7VggMqZSiok7RvfPUq6WzPjr3sqdwW9Z88et8+dO3eWJB0+fOGaT0hIiEJCQvT55/xGCgDwPYsV0OVP0Fu2bKnMOAAAuDiLZWiv74MGAACVx+snie3cuVMrV65URkaG8vPdb8dZvXp1hQMDAODXrLaK26sKevny5brxxht14MABrVmzRgUFBfr888+1efNmHjgCAKgUNpvvNjPwKkFPmTJFM2bM0HvvvaeAgADNmjVLBw8e1L333qurrrrK1zECAGC5R316laAPHz6sPn0uPPQiICBAubm5stlsGjt2rF599VWfBggAgBV5laDr1aunH3/8UZIUHh6u/fsvPK0nOztbP/30k++iAwDgZxYrob1aJPb73/9emzZtUrt27TRgwADFxsZq8+bN2rRpk2655RZfxwgAAIvEymPOnDm67777JEnPPPOM4uLilJWVpXvuuUdz5871aYAAAFS1pKQkRUREqEaNGurevbvS0tLKnPvaa6/ppptuUr169VSvXj1FRUVddH5ZvErQ9evXV+PGjS8cwM9PEyZM0MqVK9W4cWNdf/313hwSAICLqqpV3CtWrFBcXJwSEhK0e/dudejQQdHR0TpxovTHU6ekpGjQoEHasmWLUlNT1aRJE91+++06duyYR+f1KEE7HA7Fx8erS5cu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\n",
      "text/plain": [
       "<Figure size 640x480 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.heatmap(T, cmap = 'Blues', \n",
    "            annot = True, fmt = '.1f',\n",
    "            xticklabels = list(G.nodes), \n",
    "            yticklabels = list(G.nodes),\n",
    "            vmin = 0, vmax = 1,\n",
    "            linecolor = 'k', square = True,\n",
    "            linewidths = 0.2)\n",
    "plt.savefig('转移矩阵.svg')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "908ef1f0-724e-4c83-8ab1-e6f321387297",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
